
$(function(){
    
    FechaConfig();
    $("#txtFechaEmision").datepicker({dateFormat:'dd/mm/yy'});
    $("#txtFechaEmision").datepicker("setDate",new Date());
    
    $("#rbTipo").click(function(){
        var tipo = $("input[name='rbTipo']:checked").val();
        if(tipo == '0'){
            $("#lstAlm").attr("disabled","disabled");
            $("#txtNombreProd").removeAttr("disabled");
            
            btnAdd = document.getElementById("btnAdd");
            btnAdd.style.visibility = "visible";
            
        }else{
            $("#txtNombreProd").attr("disabled","disabled");
            $("#lstAlm").removeAttr("disabled");
            $("#txtNombreProd").val("");
            $("#hidProd").val("");
            
            btnAdd = document.getElementById("btnAdd");
            btnAdd.style.visibility = "hidden";
        }
        var r = limpiarSession();
        if(r == 1){
            listarOrdenCompra();
        }
    }).buttonset();
    
    $("#lstAlm").change(function(){
        var r = limpiarSession();
        if(r == 1){
            listarOrdenCompra();
        }
    });
    
    btnAdd = document.getElementById("btnAdd");
    btnAdd.style.visibility = "hidden";
    
    $("#btnVPrevia").click(function(){
        listarOrdenCompra();
    }).button();
    
    $("#btnAdd").click(function(){
        
        if($("#hidProd").val() == ""){
            alert("Debe buscar un producto");
        }else{
            verificarProducto();
        }
    }).button();
    
    $("#btnGenerar").click(function(){
        var num = $("#tblOrdenCompra tr").length;
        if(num == 0){
            msgError("Debe agregar algun producto.");
        }else{
            msgError("");
            
            var valCantidad = true;
            var valProveedor = true;
            
            $("#tblOrdenCompra tbody tr input[class='cssInput']").each(function(idx,valor){
                var index = idx+1;
                var cantidad = $("#txtCantidad_"+index).val();
                var proveedor = $("#txtProveedor_"+index).val();
                
                if($.trim(cantidad)=="" || cantidad == 0){
                    valCantidad = false;
                }
                if($.trim(proveedor)=="" || proveedor == 0){
                    valProveedor = false;
                }
            });
            
            if(!valCantidad){
                msgError("Las cantidades deben ser mayores a 0");
            }else if(!valProveedor){
                msgError("Todos los productos deben tener un proveedor");
            }else{
                actualizar();
            }
            
        }
    }).button();
    
    $("#txtNombreProd").attr("disabled","disabled");
    $("#lstAlm").removeAttr("disabled");
    
    ProductoAlmacenAutoCompletar('txtNombreProd','hidProd');
    
    listarAlmacen('lstAlm','Todos');
    generarCodigo();
    totalProductos();
});

var actualizar = function(){
    $("#tblOrdenCompra tbody tr input[class='cssInput']").each(function(idx,valor){
        var index = idx+1;
        var orden = {
            opc:'upAdd',
            codigo:$("#txtCodigo_"+index).val(),
            cantidad:$("#txtCantidad_"+index).val(),
            proveedor:$("#txtProveedor_"+index).val(),
            cod_proveedor:$("#hidProveedor_"+index).val()
        };
        $.ajax({
            data:orden,
            url:'ajax/ajaxOrdenCompra.php',
            type:'POST',
            success:function(response){
//                $("#lstOrdenCompra").html(response);
            }
        });
    });
    grabar();
};

var grabar = function(){
    var grabar = {
        opc:'ins',
        codigo:$("#txtCodigoOrdenCompra").val(),
        fecha:$("#txtFechaEmision").val()
    };
    $.ajax({
        data:grabar,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            alert(response);
            alert(grabar.codigo);
            generarOrdenCompra(grabar.codigo);
            window.location="?set=13";
        }
    });
};

var totalProductos = function() {
    var num = $("#tblOrdenCompra tr").length;
    $("#totalProductos").html("Total de productos agregados: " + num);
};

var darFormatos = function(){
    var i = $("#tblOrdenCompra tr").length;
    for(var x = 1; x <= i; x++){
        var control = "txtProveedor_" + x;
        var controlHidden = "hidProveedor_" + x;
        ProveedorAutoCompletar(control,controlHidden);
    }
    $("#totalProductos").html("Total de productos agregados: " + i);
};

var eliminarProducto = function(codigo){
    var orden = {
        opc:'delAdd',
        codigo:codigo
    };
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            $("#lstOrdenCompra").html(response);
            darFormatos();
        }
    });
};

var generarCodigo = function(){
    var orden = {opc:'cod'};
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            var orden = $.parseJSON(response);
            $("#txtCodigoOrdenCompra").val(orden.codigoNuevo);
        }
    });
};

var limpiarSession = function(){
    var session = {
        opc:'limp'
    };
    $.ajax({
        data:session,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
        }
    });
};

var verificarProducto = function(){
    var orden = {
        opc:'val',
        cod_producto_almacen:$("#hidProd").val()
    };
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                agregarProducto(orden.cod_producto_almacen);
            }
        }
    });
};

var agregarProducto = function(codigo){
    var orden = {
        opc:'add',
        cod_producto_almacen:codigo
    };
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            $("#lstOrdenCompra").html(response);
            darFormatos();
        }
    });
};

var listarOrdenCompra = function(){
    var tipo = $("input[name='rbTipo']:checked").val();
    
    if(tipo == 0){
        listarManual();
    }else{
        listarAutomatico();
    }
};

var listarManual = function(){
    var orden = {
        opc:'lstOrden'
    };
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            $("#lstOrdenCompra").html(response);
            darFormatos();
        }
    });
};

var listarAutomatico = function (){
    var orden = {
        opc:'ordAuto',
        cod_almacen:$("#lstAlm").val()
    };
    $.ajax({
        data:orden,
        url:'ajax/ajaxOrdenCompra.php',
        type:'POST',
        success:function(response){
            $("#lstOrdenCompra").html(response);
            darFormatos();
        }
    });    
};